Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(jans-fido2): major FIDO2 / Passkeys upgrade ProjectPasskeys #10080

Draft
wants to merge 226 commits into
base: main
Choose a base branch
from

Conversation

moabu
Copy link
Member

@moabu moabu commented Nov 7, 2024

This PR completely revamps jans-fido2, to enable support for passkeys, and bring the server up to spec.

So far changes:

Please check the below before submitting your PR. The PR will not be merged if there are no commits that start with docs: to indicate documentation changes or if the below checklist is not selected.

  • I confirm that there is no impact on the docs due to the code changes in this PR.

Closes #10079,

Prev. PR #9120

mo-auto and others added 30 commits November 7, 2024 10:22
Bumps commons-text from 1.9 to 1.10.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-text
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.5.0 to 42.5.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](pgjdbc/pgjdbc@REL42.5.0...REL42.5.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@mo-auto mo-auto added area-documentation Documentation needs to change as part of issue or PR comp-docker-jans-fido2 comp-docs Touching folder /docs comp-jans-auth-server Component affected by issue or PR comp-jans-casa Touching folder /jans-casa comp-jans-cli-tui Component affected by issue or PR comp-jans-config-api Component affected by issue or PR comp-jans-core Component affected by issue or PR comp-jans-fido2 Component affected by issue or PR labels Nov 7, 2024
Copy link

dryrunsecurity bot commented Nov 7, 2024

DryRun Security Summary

The pull request focuses on improving the configuration and documentation of the FIDO2 (Fast IDentity Online) implementation across various components of the Janssen Project application, including renaming configuration properties, enhancing logging and monitoring capabilities, updating Relying Party (RP) and FIDO2 metadata service configurations, improving the FIDO2 authentication flow, and enhancing the Swagger documentation for the FIDO2 API endpoints.

Expand for full summary

Summary:

The code changes in this pull request are primarily focused on improving the configuration and documentation of the FIDO2 (Fast IDentity Online) implementation across various components of the Janssen Project application. The changes include:

  1. Renaming of configuration properties to align with the FIDO2 standard terminology, such as changing "requestedCredentialTypes" to "enabledFidoAlgorithms" and "requestedParties" to "rp" (Relying Party).
  2. Improvements to the logging and monitoring capabilities, including the addition of properties for configuring logging levels and layouts.
  3. Updates to the Relying Party (RP) configuration, including changes to the structure and naming of the RP-related properties.
  4. Modifications to the FIDO2 metadata service configuration, such as the introduction of the "attestationMode" property.
  5. Enhancements to the FIDO2 authentication flow, including changes to the WebAuthn API implementation and the handling of assertion and attestation requests.
  6. Improvements to the Swagger documentation for the FIDO2 API endpoints.

From an application security perspective, these changes appear to be focused on improving the overall security and reliability of the FIDO2 implementation. The renaming of configuration properties, the addition of logging and monitoring capabilities, and the updates to the RP and metadata service configurations are all positive steps towards enhancing the security posture of the application.

Files Changed:

  • docs/janssen-server/config-guide/fido2-config/janssen-fido2-configuration.md: Changes to the FIDO2 configuration, including updates to the property names and structure.
  • docs/janssen-server/fido/logs.md: Changes to the logging configuration for the FIDO2 server.
  • docker-jans-fido2/scripts/upgrade.py: Updates to the FIDO2 configuration transformation and persistence handling during the upgrade process.
  • docs/janssen-server/fido/config.md: Changes to the FIDO2 configuration, including updates to the property names and structure.
  • docs/janssen-server/fido/vendor-metadata.md: Changes to the FIDO2 metadata service configuration, including the introduction of the "attestationMode" property.
  • jans-auth-server/server/src/main/webapp/auth/fido2/js/webauthn.js: Enhancements to the WebAuthn API implementation for FIDO2 authentication.
  • docs/script-catalog/person_authentication/fido2-external-authenticator/Fido2ExternalAuthenticator.py: Changes to the FIDO2 external authenticator implementation.
  • docs/janssen-server/reference/json/properties/fido2-properties.md: Updates to the FIDO2 configuration properties documentation.
  • jans-auth-server/server/src/main/webapp/auth/fido2/passkeys.xhtml: Changes to the FIDO2 authentication flow and error handling.
  • jans-auth-server/server/src/main/webapp/auth/fido2/login.xhtml: Improvements to the FIDO2 login page and authentication process.
  • jans-casa/app/src/main/java/io/jans/casa/plugins/authnmethod/service/Fido2Service.java: Updates to the FIDO2 registration and verification process.
  • jans-cli-tui/cli_tui/plugins/020_fido/main.py: Changes to the FIDO2 configuration management in the command-line user interface.
  • jans-config-api/plugins/fido2-plugin/src/test/resources/feature/fido2/dynamiconf.json: Updates to the FIDO2 plugin configuration in the Jans Config API.
  • jans-config-api/plugins/docs/fido2-plugin-swagger.yaml: Changes to the FIDO2 plugin Swagger documentation in the Jans Config API.
  • jans-config-api/plugins/fido2-plugin/src/test/resources/feature/fido2/fido2.json: Updates to the FIDO2 plugin configuration in the Jans Config API.
  • jans-fido2/client/pom.xml: Minor change to the `jans-fido2-model

Code Analysis

We ran 9 analyzers against 30 files and 2 analyzers had findings. 7 analyzers had no findings.

Analyzer Findings
Sensitive Files Analyzer 1 finding
Authn/Authz Analyzer 5 findings

Riskiness

🟢 Risk threshold not exceeded.

View PR in the DryRun Dashboard.

maduvena and others added 3 commits November 7, 2024 20:30
…y, publicKeyAlgorithm, publicKeyId, transport to the newly created cred object.
#10101 property name changed and not reflected in the template

Signed-off-by: Madhumita Subramaniam <[email protected]>
Copy link

sonarcloud bot commented Nov 11, 2024

@ossdhaval ossdhaval changed the title (jans-fido2): major FIDO2 / Passkeys upgrade ProjectPasskeys feat(jans-fido2): major FIDO2 / Passkeys upgrade ProjectPasskeys Nov 13, 2024
@mo-auto mo-auto added the kind-feature Issue or PR is a new feature request label Nov 13, 2024
Copy link

sonarcloud bot commented Nov 14, 2024

Copy link

sonarcloud bot commented Nov 14, 2024

Copy link

sonarcloud bot commented Nov 14, 2024

Copy link

sonarcloud bot commented Nov 14, 2024

Copy link

sonarcloud bot commented Nov 14, 2024

Copy link

sonarcloud bot commented Nov 14, 2024

Copy link

sonarcloud bot commented Nov 14, 2024

Copy link

sonarcloud bot commented Nov 14, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-documentation Documentation needs to change as part of issue or PR comp-docker-jans-fido2 comp-docs Touching folder /docs comp-jans-auth-server Component affected by issue or PR comp-jans-casa Touching folder /jans-casa comp-jans-cli-tui Component affected by issue or PR comp-jans-config-api Component affected by issue or PR comp-jans-core Component affected by issue or PR comp-jans-fido2 Component affected by issue or PR kind-feature Issue or PR is a new feature request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

fix: (jans-fido2): major FIDO2 / Passkeys upgrade ProjectPasskeys -autocreated